package com.vhans.db.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vhans.core.domain.BAppointment;
import com.vhans.db.model.dto.ConditionDTO;
import com.vhans.core.web.model.dto.AgreementDTO;
import com.vhans.db.model.vo.agreement.AgreementHomeListVO;
import com.vhans.db.model.vo.agreement.appointment.AppointmentAgreementVO;
import com.vhans.db.model.vo.agreement.appointment.AppointmentInfoVO;
import com.vhans.db.model.vo.agreement.appointment.AppointmentVO;

import java.util.List;

/**
 * 约会业务接口
 *
 * @author vhans
 **/
public interface IBAppointmentService extends IService<BAppointment> {

    /**
     * 查看约会列表
     *
     * @param condition 条件
     * @return 约会列表
     */
    List<AppointmentVO> listAppointmentVO(ConditionDTO condition);

    /**
     * 添加约会
     *
     * @param appointment 约会
     */
    void addAppointment(AgreementDTO appointment);

    /**
     * 删除约会
     *
     * @param appointmentId 约会id
     */
    void deleteAppointment(Integer appointmentId);

    /**
     * 修改约会
     *
     * @param appointment 约会
     */
    String updateAppointment(AgreementDTO appointment);

    /**
     * 编辑约会
     *
     * @param appointmentId 约会id
     * @return 约会
     */
    AppointmentInfoVO editAppointment(Integer appointmentId);

    /**
     * 查看首页约会列表
     *
     * @return 首页约会列表
     */
    List<AgreementHomeListVO> listAppointmentHomeVO();

    /**
     * 查看约会
     *
     * @param appointmentId 约会id
     * @return 约会
     */
    AppointmentAgreementVO getAppointmentAgreementById(Integer appointmentId);

    /**
     * 查询指定约会
     *
     * @param appointmentId 约会id
     * @return 指定约会
     */
    AppointmentAgreementVO getSpecifyAppointmentAgreementById(Integer appointmentId);

    /**
     * 大众应约
     *
     * @param appointmentId 约会id
     */
    String answerAppointment(Integer appointmentId);

    /**
     * 指定人员应约
     *
     * @param appointmentId 约会id
     */
    String uniqueAppointment(Integer appointmentId);
}
